The file that represents the external interrupt lines on a Challenge or Onyx system is /dev/ei. It can be opened by more than one process at a time, under rules that are spelled out in the ei(7) reference page. The methods of opening /dev/ei, configuring pulse widths, and generating output pulses are covered in Chapter 6, "Control of External Interrupts," and remain the same.
The files that represent VME control units are /dev/vme/vme*. The rules for opening one of these files and mapping a device into memory are covered under "VME Programmed I/O", and remain the same. The difference is that, with ULI, you can map in a device that can cause interrupts.
The program should open the device and (for a VME device) verify that the device exists and is active before proceeding.